home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Taifun / Taifun 155 (1991-03-10)(Manewaldt, A.)(DE)(PD).zip / Taifun 155 (1991-03-10)(Manewaldt, A.)(DE)(PD).adf / Off_Pointer / PointerOff.c < prev    next >
C/C++ Source or Header  |  1991-03-01  |  2KB  |  106 lines

  1. /*
  2.    PointerOff.c  V1.3
  3.    Autor: Stefan Scholl (== stesch@sks.ppc.sub.org)
  4.  
  5.  
  6.    PointerOff bleibt im Hintergrund (ohne RUN) und schaltet nach 2 Sekunden
  7.    den Mauszeiger aus. Wenn man die Maus bewegt erscheint der Zeiger wieder.
  8.    Erneutes Starten von PointerOff entfernt es wieder aus dem Speicher.
  9.  
  10.  
  11.    Ich habe noch den alten Lattice 4.01
  12.    Compilieren und linken mit:
  13.  
  14. lc -d -b -r -v PointerOff
  15. blink lib:cback.o PointerOff.o lib lib:lc.lib lib:amiga.lib sc sd nd verbose
  16.  
  17.    Der Source ist nicht besonders fein (gotos), aber dafuer ist das Compilat
  18.    relativ kurz (mit Lattice C 4.01 2204 Bytes).
  19.  
  20.  
  21.    Das Programm ist vollkommen Public Domain, d.h. es darf frei kopiert und
  22.    auch veraendert werden! Wenn moeglich bitte in neueren Versionen erwaehnen
  23.    von wem die Version 1.3 stammt. :-)
  24. */
  25.  
  26. #include <string.h>
  27. #include <exec/types.h>
  28. #include <exec/ports.h>
  29. #include <exec/memory.h>
  30. #include <graphics/gfxmacros.h>
  31. #include <libraries/dos.h>
  32. #include <proto/exec.h>
  33. #include <proto/graphics.h>
  34. #include <proto/dos.h>
  35.  
  36. #define WARTETICKS 100
  37.  
  38. #define PORTNAME "PointerOff.port"
  39.  
  40. struct GfxBase *GfxBase;
  41.  
  42. long _stack = 4000;
  43. char *_procname = "PointerOff";
  44. long _priority = 1;
  45. long _BackGroundIO = 1; /* I/O mit Start-Console */
  46. extern BPTR _Backstdout;
  47.  
  48. void MemCleanup(){}
  49.  
  50. void chkabort() {}
  51.  
  52. void out(text)
  53. char *text;
  54. {
  55.   if(_Backstdout) Write(_Backstdout,text,strlen(text));
  56. }
  57.  
  58. void _main()
  59. {
  60.   register struct MsgPort *mp;
  61.   register long sig;
  62.  
  63.   out("\x1b[33mPointerOff V1.3\x1b[31m\n1990 written by Stefan Scholl\n\n");
  64.  
  65.   if(mp = FindPort(PORTNAME)) /* Port schon da => weg damit */
  66.   {
  67.     Signal(mp->mp_SigTask, 1 << mp->mp_SigBit); /* anklopfen.. */
  68.     out("PointerOff removed.\n");
  69.     goto ende1;
  70.   }
  71.   else /* Port existiert noch nicht... */
  72.   {
  73.     if(!(mp = CreatePort(PORTNAME,0)))
  74.     {
  75.       out("Can\'t create MessagePort!\n");
  76.       goto ende1;
  77.     }
  78.   }
  79.  
  80.   if(!(GfxBase=(struct GfxBase *) OpenLibrary("graphics.library",0)))
  81.   {
  82.     out("Can\'t open \"graphics.library\"!\n");
  83.     goto ende2;
  84.   }
  85.  
  86.   out("PointerOff installed.\n");
  87.  
  88.   if(_Backstdout) Close(_Backstdout);
  89.   _Backstdout=0;
  90.  
  91.   for(;;)
  92.   {
  93.     FreeSprite(0); /* Weg mit dem Mauszeiger */
  94.     sig=SetSignal(0,0);
  95.     if(sig & (1 << mp->mp_SigBit))
  96.       goto ende3;
  97.     Delay(WARTETICKS);   /* Warten */
  98.   }
  99. ende3:
  100.   if(GfxBase) CloseLibrary((struct Library *)GfxBase);
  101. ende2:
  102.   DeletePort(mp);
  103. ende1:
  104.   if(_Backstdout) Close(_Backstdout);
  105. }
  106.